home *** CD-ROM | disk | FTP | other *** search
-
- SEND(2) UNIX Programmer's Manual SEND(2)
-
- NNAAMMEE
- sseenndd, sseennddttoo, sseennddmmssgg - send a message from a socket
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<ssyyss//ssoocckkeett..hh>>
-
- _s_s_i_z_e___t
- sseenndd(_i_n_t _s, _c_o_n_s_t _v_o_i_d _*_m_s_g, _s_i_z_e___t _l_e_n, _i_n_t _f_l_a_g_s)
-
- _s_s_i_z_e___t
- sseennddttoo(_i_n_t _s, _c_o_n_s_t _v_o_i_d _*_m_s_g, _s_i_z_e___t _l_e_n, _i_n_t _f_l_a_g_s,
- _c_o_n_s_t _s_t_r_u_c_t _s_o_c_k_a_d_d_r _*_t_o, _i_n_t _t_o_l_e_n)
-
- _s_s_i_z_e___t
- sseennddmmssgg(_i_n_t _s, _c_o_n_s_t _s_t_r_u_c_t _m_s_g_h_d_r _*_m_s_g, _i_n_t _f_l_a_g_s)
-
- DDEESSCCRRIIPPTTIIOONN
- SSeenndd(), sseennddttoo(), and sseennddmmssgg() are used to transmit a message to another
- socket. SSeenndd() may be used only when the socket is in a _c_o_n_n_e_c_t_e_d state,
- while sseennddttoo() and sseennddmmssgg() may be used at any time.
-
- The address of the target is given by _t_o with _t_o_l_e_n specifying its size.
- The length of the message is given by _l_e_n. If the message is too long to
- pass atomically through the underlying protocol, the error EMSGSIZE is
- returned, and the message is not transmitted.
-
- No indication of failure to deliver is implicit in a sseenndd(). Locally de-
- tected errors are indicated by a return value of -1.
-
- If no messages space is available at the socket to hold the message to be
- transmitted, then sseenndd() normally blocks, unless the socket has been
- placed in non-blocking I/O mode. The select(2) call may be used to de-
- termine when it is possible to send more data.
-
- The _f_l_a_g_s parameter may include one or more of the following:
-
- #define MSG_OOB 0x1 /* process out-of-band data */
- #define MSG_DONTROUTE 0x4 /* bypass routing, use direct interface */
-
- The flag MSG_OOB is used to send ``out-of-band'' data on sockets that
- support this notion (e.g. SOCK_STREAM); the underlying protocol must al-
- so support ``out-of-band'' data. MSG_DONTROUTE is usually used only by
- diagnostic or routing programs.
-
- See recv(2) for a description of the _m_s_g_h_d_r structure.
-
- RREETTUURRNN VVAALLUUEESS
- The call returns the number of characters sent, or -1 if an error oc-
- curred.
-
- EERRRROORRSS
- SSeenndd(), sseennddttoo(), and sseennddmmssgg() fail if:
-
- [EBADF] An invalid descriptor was specified.
-
- [ENOTSOCK] The argument _s is not a socket.
-
- [EFAULT] An invalid user space address was specified for a parame-
- ter.
-
- [EMSGSIZE] The socket requires that message be sent atomically, and
-
- the size of the message to be sent made this impossible.
-
- [EAGAIN] The socket is marked non-blocking and the requested opera-
- tion would block.
-
- [ENOBUFS] The system was unable to allocate an internal buffer. The
- operation may succeed when buffers become available.
-
- [ENOBUFS] The output queue for a network interface was full. This
- generally indicates that the interface has stopped sending,
- but may be caused by transient congestion.
-
- SSEEEE AALLSSOO
- fcntl(2), recv(2), select(2), getsockopt(2), socket(2), write(2)
-
- HHIISSTTOORRYY
- The sseenndd() function call appeared in 4.2BSD.
-
- 4.2 Berkeley Distribution February 21, 1994 2
-